/**
 * 使用 MyBatis Plus 提升使用 MyBatis 的开发效率
 */
package cn.always.xiajia.framework.mybatis;

/// **
// * 转换查询器
// *
// * @param param
// * @return
// */
// public QueryWrapperX<T> buildByMap(Map<String, Object> param) {
// if (!ExtMapUtils.isEmpty(param)) {
// for (String key : param.keySet()) {
// Object value = param.get(key);
//
// if (!ExtStringUtil.isBlank(key) && ObjectUtil.isNotEmpty(value)) {
// key = key.replaceAll(" ", "");
// key = key.replace("_OR_", "||").replace("_AND_", "&&");
// if (!isMultiparameter(key)) {
// // 是否多参数
// handleKey(key, this, value);
// } else {
// Object[] values = null;
// // Integer valueXb = 0;
// if (value != null && value.getClass().isArray()) {
// values = (Object[]) ((Object[]) value);
// } else if (value != null &&
// List.class.isAssignableFrom(value.getClass())) {
// List<Object> list = (List) value;
// values = list.toArray();
// }
// final Object[] valueNews = values;
// key = replaceSymbolInBrackets(key);
// String[] ors = key.split("\\|\\|");
// Map<String, Integer> valueXb = new HashMap<>();
// valueXb.put("xb", 0);
// this.and(a -> {
// for (int i = 0; i < ors.length; i++) {
// String or = ors[i];
// String[] ands = or.split("&&");
// a.or(b -> {
// for (int j = 0; j < ands.length; j++) {
// String and = ands[j];
// b.and(c -> {
// if (and.startsWith("(") && and.endsWith(")")) {
// String and1 = and.substring(1, and.length() - 1);
// if (and1.contains("&")) {
// String[] subAnds = and1.split("&");
// for (int k = 0; k < subAnds.length; k++) {
// if (and.contains("|")) {
// String[] subOrs = subAnds[k].split("\\|");
// for (int z = 0; z < subOrs.length; z++) {
// handleKey(subOrs[z], c, valueNews[valueXb.get("xb")]);
// valueXb.put("xb", valueXb.get("xb") + 1);
// if (z != subOrs.length - 1) {// 加OR
// c.or();
// }
// }
// } else {
// handleKey(subAnds[k], c, valueNews[valueXb.get("xb")]);
// valueXb.put("xb", valueXb.get("xb") + 1);
// }
// }
// } else if (and1.contains("|")) {
// String[] subOrs = and1.split("\\|");
// for (int k = 0; k < subOrs.length; k++) {
// handleKey(subOrs[k], c, valueNews[valueXb.get("xb")]);
// valueXb.put("xb", valueXb.get("xb") + 1);
// if (k != subOrs.length - 1) {// 加OR
// c.or();
// }
// }
// } else {
// handleKey(and1, c, valueNews[valueXb.get("xb")]);
// valueXb.put("xb", valueXb.get("xb") + 1);
// }
// } else {
// handleKey(and, c, valueNews[valueXb.get("xb")]);
// valueXb.put("xb", valueXb.get("xb") + 1);
// }
// });
// }
// });
// }
// });
// }
// }
// }
//
// }
// return (QueryWrapperX<T>) this;
// }
